////////////////////////////
/** \file OS.h
 *	OzZ Controls OS-Header
 *	Include OzZcontrols.h to your project instead
 *	All OS-Dependent Code goes here!
 *	(c) Copyright by Daniel Bulla 2006
 *	\author Daniel 'OzZ' Bulla
 */

#include "../OzZtypes.h"


///@name Message-Box Buttons
///@{
#define MSGBTN_EX_YES		(DWORD)0x0000000f
#define MSGBTN_EX_OK		(DWORD)0x000000f0
#define MSGBTN_EX_ACCEPT	(MSGBTN_EX_YES|MSGBTN_EX_OK) ///< use this, if the difference between Yes and OK can be neglected

#define MSGBTN_EX_NO		(DWORD)0x00000f00
#define MSGBTN_EX_CANCEL	(DWORD)0x0000f000
#define MSGBTN_EX_ABORT		MSGBTN_EX_CANCEL
#define MSGBTN_EX_DECLINE	(MSGBTN_EX_CANCEL|MSGBTN_EX_NO)

#define MSGBTN_EX_RETRY		(DWORD)0x000f0000
#define MSGBTN_EX_PROCEED	(DWORD)0x00f00000
#define MSGBTN_EX_IGNORE	MSGBTN_EX_PROCEED

#define MSGBTN_CONFIRMDECLINE		(MSGBTN_EX_ACCEPT|MSGBTN_EX_DECLINE)
#define MSGBTN_RETRYABORT			(MSGBTN_EX_RETRY|MSGBTN_EX_ABORT)
#define MSGBTN_RETRYPROCEEDABORT	(MSGBTN_EX_RETRY|MSGBTN_EX_PROCEED|MSGBTN_EX_ABORT)
#define MSGBTN_YESNOCANCEL			(MSGBTN_EX_YES|MSGBTN_EX_NO|MSGBTN_EX_CANCEL)
///@}
namespace oc
{

void	OSInit();								///< Called at the beginning (for example a time could be initialized)
void	OSFree();								///< counterpart of OSInit()
void	OSCurrentDir(int buffsize, char* szDir);///< Used o get the Working-Directory
DWORD	OSGetTime();							///< Gets a timer-value
DWORD	OSMsg(const char* msg, DWORD msgbtn);	///< Prints a message on screen \return button that was pressed

} //namespace oc